package com.sky.mapper;

import com.sky.dto.ShoppingCartDTO;
import com.sky.entity.ShoppingCart;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface ShoppingCartMapper {

    //动态条件查询
    List<ShoppingCart> list(ShoppingCart shoppingCart);

    //根据id更新数量
    @Update("update shopping_cart set number = #{number} where id = #{id}")
    void updateNumberById(ShoppingCart cart);

    //插入
    @Insert("insert into shopping_cart(name,user_id,dish_id,setmeal_id,dish_flavor,number,amount,image,create_time) " +
            "values(#{name},#{userId},#{dishId},#{setmealId},#{dishFlavor},#{number},#{amount},#{image},#{createTime})")
    void insert(ShoppingCart shoppingCart);

    //删除
    @Delete("delete from shopping_cart where user_id = #{userId}")
    void clean(Long userId);


    //根据菜品id删除购物车中的商品
    @Delete("delete from shopping_cart where dish_id = #{dishId}")
    void deleteOneByDishId(Long dishId);

    //根据菜品口味删除购物车中的商品
    @Delete("delete from shopping_cart where dish_flavor = #{dishFlavor}")
    void deleteOneByDishFlavor(String dishFlavor);

    //根据套餐id删除购物车中的商品
    @Delete("delete from shopping_cart where setmeal_id = #{setmealId}")
    void deleteOneBySetmealId(Long setmealId);

    //批量插入
    void insertBatch(List<ShoppingCart> shoppingCartList);
}